
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (c) 2009, Adam Kubach
//  All rights reserved.
//  BSD License: http://www.opensource.org/licenses/bsd-license.html
//
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
//
//  Class to hold the state from a camera.
//
///////////////////////////////////////////////////////////////////////////////

#include "Minerva/Core/Data/CameraState.h"

using namespace Minerva::Core::Data;


///////////////////////////////////////////////////////////////////////////////
//
//  Constructor.
//
///////////////////////////////////////////////////////////////////////////////

CameraState::CameraState ( 
                          double longitude, 
                          double latitude,
                          double altitude,
                          double heading, 
                          double tilt,
                          double roll,
                          const Matrix& matrix ) : BaseClass(),
  _longitude ( longitude ),
  _latitude ( latitude ),
  _altitude ( altitude ),
  _heading ( heading ),
  _tilt ( tilt ),
  _roll ( roll ),
  _viewMatrix ( matrix )
{
}


///////////////////////////////////////////////////////////////////////////////
//
//  Destructor.
//
///////////////////////////////////////////////////////////////////////////////

CameraState::~CameraState()
{
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the longitude.
//
///////////////////////////////////////////////////////////////////////////////

double CameraState::longitude() const
{
  return _longitude;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the latitude.
//
///////////////////////////////////////////////////////////////////////////////

double CameraState::latitude() const
{
  return _latitude;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the altitude.
//
///////////////////////////////////////////////////////////////////////////////

double CameraState::altitude() const
{
  return _altitude;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the heading.
//
///////////////////////////////////////////////////////////////////////////////

double CameraState::heading() const
{
  return _heading;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the tilt.
//
///////////////////////////////////////////////////////////////////////////////

double CameraState::tilt() const
{
  return _tilt;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the roll.
//
///////////////////////////////////////////////////////////////////////////////

double CameraState::roll() const
{
  return _roll;
}


///////////////////////////////////////////////////////////////////////////////
//
//  Get the view matrix.
//
///////////////////////////////////////////////////////////////////////////////

const CameraState::Matrix & CameraState::viewMatrix() const
{
  return _viewMatrix;
}

